Automated trading

ABSTRACT

Systems and methods for automated trading are disclosed. In one embodiment, a computer system may execute program instructions to generate dealable prices at which a first trading entity is willing to buy and/or sell an item. The system may then communicate the generated prices from the computer system to a trading system, causing the trading system to post the communicated prices. In another embodiment, the computer system may execute program instructions to determine to hit dealable prices for items posted to the trading system. For example, these actions may be performed for spot trades of a foreign currency pair, without requiring the use of a graphical user interface. In other embodiments, the computer system may use received prices to automatically generate a pricing forecast.

RELATED APPLICATIONS

The present application is a divisional of U.S. application Ser. No.13/031,394 filed Feb. 21, 2011, which is a divisional of U.S.application Ser. No. 11/711,698, filed Feb. 26, 2007 (now U.S. Pat. No.7,895,118), which is a continuation of U.S. application Ser. No.10/005,609, filed Nov. 7, 2001 (now U.S. Pat. No. 7,184,984), whichclaims priority to U.S. Provisional application No. 60/228,310 filed May2, 2001, and U.S. Provisional application No. 60/249,796, filed Nov. 17,2000; the disclosures of each of the above-referenced applications areincorporated by reference herein in their entireties.

This application is also related to the following applications filed onOct. 25, 2011: U.S. application No. ______ entitled “Trading UsingIntermediate Entities” (Attorney docket number 6539-00123); U.S.application No. ______ entitled “Trading System with IndividualizedOrder Books” (Attorney docket number 6539-00124); U.S. application No.______ entitled “Application Programming Interface for Trading System”(Attorney docket number 6539-00125); U.S. application No. ______entitled “Aggregation of Trading Orders” (Attorney docket number6539-00126); and U.S. application No. ______ entitled “Requests forQuotes from Indirect Credit Lines” (Attorney docket number 6539-00128).

TECHNICAL FIELD

This invention pertains to the field of global electronic trading ofcommodities and financial instruments.

BACKGROUND ART

Currently, hundreds of billions of dollars are exchanged among banks,governments, and institutions in the foreign exchange (fx) markets eachday. The mechanisms used in these markets have lagged behind theInternet revolution, however. These market mechanisms, in addition tooperating on aging private-network and telephone-based technologies,also restrict participation in these markets by entities that are notpart of the interbank network. When an entity without access to theinterbank network (e.g., an individual or hedge fund) currently wishesto make a currency trade, that entity is only able to execute the tradethrough the limited set of banks with whom it has established creditfacilities, as banks are concerned with counterparty risk, especiallywith the large size of typical over-the-counter fx trades.

Furthermore, because prices in the fx markets change rapidly, bids andoffers quoted to clients over the telephone by their banks are “firm”only for a very limited amount of time. In order to get the bestpossible price, the client has to poll as many banks as it has creditlines with. While expensive private-networks such as Reuters providebid/offer quotes from several dozen contributing banks, these quotes aremerely indicative of the current bid and offer prices and thus are notfirm bids or offers. Also, the quotes provided by these services havebeen shown to lag the market.

Still other factors affect fx market efficiency. Banks have littleincentive to continue to do business with a client who calls for quotesfrequently but rarely makes the trade. Thus, clients may feel the needto “farm out” trades by executing suboptimal trades in order to keep ingood standing with their banks

Instead of being concerned solely with market movements, an fx marketparticipant must therefore contend with (1) obtaining timely quotes; (2)establishing credit lines in order to expand the number of banks withwhich to seek the best bid/offer prices; and (3) the politics ofcounterparty relationships.

Wright, Ben, “Unlocking the C2C forex riddle”, euromoney.com, Jul. 25,2001, U.K., provides a general discussion of some of the businessaspects of the present invention.

Morris, Jennifer, “Forex goes into future shock”, Euromoney, October2001, gives a general description of several computerized foreignexchange platforms, including one described in the present patentapplication.

Ahuja, R. K., Magnanti, T. L., and Orlin, J. B., Network Flows; Theory,Algorithms, and Applications, Chapters 7 and 9 (Prentice-Hall, Inc.1993), U.S.A., sets forth some algorithms that may be useful inimplementing the present invention.

U.S. Pat. No. 5,375,055 discloses a relatively simple trading systemthat is capable of implementing only single-hop trades. On the otherhand, the present invention can accommodate multi-hop trades. Further,in U.S. Pat. No. 5,375,055, the user is given information that suggeststo him that he can take a trade when he may not have enough credit totake the whole trade. In the present invention, on the other hand, ifonly part of a trade can be executed, that information is—given to theuser; the user knows that he has enough credit to execute at least thebest bid and best offer that are displayed on his computer.

An even simpler trading system is disclosed in European patentapplication 0 411 748 A2 and in granted European patents 0 399 850 B1and 0 407 026 B1, all three of which are assigned to Reuters Limited.These Reuters documents describe a system in which informationconcerning a potential trade is displayed even if the user can't executeit at all. In the present invention, such a potential trade would not bedisplayed at all. Furthermore, the only credit limits that can beaccommodated in the Reuters system are volume limits for the purposes oflimiting settlement risk. In the present invention, any agent may setcredit limits in multiple ways so as to limit not only settlement risk(measured both by individual instrument volumes and by notional absolutevalues) but also exposure risk. Furthermore, the Reuters keystationsrequire a human operator. In the present invention, on the other hand,an API (application programming interface) enables any participant todevelop programs which partially or fully automate the trading process.

DISCLOSURE OF THE INVENTION

Methods, systems, and computer readable media for facilitating tradingtwo items (L,Q) from the group of items comprising commodities andfinancial instruments. At least two agents (2) want to trade someinstrument L at some price quoted in terms of another instrument Q. Theexchange of L and Q is itself a financial instrument, which is referredto as a traded instrument. A trading channel (3) between the two agents(2) allows for the execution of trades. Associated with each channel (3)are trading limits configured by the two agents (2) in order to limitrisk. A central computer (1) coupled to the two agents (2) is adapted toconvey to each agent (2) current tradable prices and available volumesfor the exchange of L for Q and for the exchange of Q for L, taking intoaccount the channel (3) trading limits. The central computer (1)facilitates trades that occur across a single trading channel (3) andtrades that require the utilization of multiple trading channels (3).

The proposed system will enable entities such as corporations, hedgefunds, and smaller dealers to make orders by price for currencies, otherover-the-counter fx derivative products, and other financialinstruments. The system permits the use of a special purpose“limit-order book” designed for over-the-counter transactions betweenspecific parties. (As opposed to “market” orders, in which an entitywishing to buy or sell does so with the lowest offer or highest bid onthe “book” at the moment, a “limit” order allows an entity to specify aprice and quantity to be added to the “book”; this limit order remainson the book until it expires or until another entity decides to act onthe limit order.) The system may help “turn the tables” in favor ofclients by enabling their orders to be instantly displayed by price toparties subscribing to the system (including banks) Such a system thushas the effect of creating greater price transparency.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram illustrating a “type zero” trading systemembodiment of the present invention.

FIG. 2 is a block diagram illustrating a “type 1” trading systemembodiment of the present invention.

FIG. 3 is a block diagram illustrating a “type 2” trading systemembodiment of the present invention.

FIG. 4 is a block diagram illustrating a “type 2” back-to-back tradeusing the present invention.

FIG. 5 is a block diagram illustrating an interlocking network of type 1and type 2 atomic units.

FIG. 6 is a schematic diagram illustrating trading limits for a tradedinstrument being traded between four agents 4,5 using three tradingchannels 3.

FIG. 7 is a block diagram illustrating various ways that agents 2 can beconnected to enable them to use the present invention.

FIG. 8 is a timeline illustrating an embodiment of the matching processused in the present invention.

FIG. 9 is a block diagram illustrating an embodiment of the borderoutpost process of the present invention.

FIG. 10 is a deal fulfillment graph.

FIG. 11 is a flow diagram illustrating the sequence of screen shotsappearing on the computer of an agent 2 using the present invention.

FIG. 12 illustrates a log-in screen 21 of the computer of an agent 2.

FIG. 13 illustrates a custom limit order book overview window 24(multiple traded instruments).

FIG. 14 illustrates a custom limit order book window 25 (single tradedinstrument).

FIG. 15 illustrates a net exposure monitor 35.

FIG. 16 illustrates a balance sheet window 36.

FIG. 17 illustrates an open order overview and management window 33.

FIG. 18 illustrates a bid creation dialog box 28.

FIG. 19 illustrates an offer creation dialog box 29.

FIG. 20 illustrates a buy (immediate execution bid) dialog box 30.

FIG. 21 illustrates a sell (immediate execution offer) dialog box 31.

FIG. 22 is a flow diagram illustrating the computation of a custom limitorder book 24,25.

FIG. 23 is a flow diagram illustrating the computation of multi-hop flowlimits for a single traded instrument among all accounts.

FIG. 24 is a flow diagram illustrating computation of a directed graphof single-hop flow limits for a single traded instrument among allaccounts.

FIG. 25 is a flow diagram illustrating computation of minimum andmaximum excursions for a single account A and a single tradedinstrument.

FIG. 26 is a flow diagram illustrating computation of a position limitfor a lot instrument L.

FIG. 27 is a flow diagram illustrating computation of a position limitfor a quoted instrument Q.

FIG. 28 is a flow diagram illustrating computation of a volume limit fora lot instrument L.

FIG. 29 is a flow diagram illustrating computation of a volume limit fora quoted instrument Q.

FIG. 30 is a flow diagram illustrating computation of a notionalposition limit.

FIG. 31 is a flow diagram illustrating computation of a notional volumelimit.

FIG. 32 is a flow diagram illustrating computation of a tradedinstrument L:Q position limit.

FIG. 33 is a flow diagram illustrating computation of a tradedinstrument L:Q volume limit.

FIG. 34 is a flow diagram illustrating reporting by computer 1 of asingle-hop trade.

FIG. 35 is a flow diagram illustrating reporting by computer 1 of amulti-hop trade.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

The present invention enables an arbitrary number of agents 2 ofarbitrary type (such as corporate treasuries, hedge funds, mutual fundsand other collective investment schemes, banks and other financialinstitutions, and other institutions or persons) to trade commoditiesand financial instrument pairs directly amongst each other (thusfacilitating client-to-client, or C2C trading) by making orders to theirpeers to buy and sell the traded instrument pairs over “credit atomicunits” and “credit molecules”.

By way of example, the application highlighted most often herein is thespot foreign exchange (spot FX) market, but it must be understood thatthe present invention has applicability to trading in any type ofover-the-counter commodity or financial instrument, including physicalcommodities, energy products (oil, gas, electricity), insurance andreinsurance products, debt instruments, other foreign exchange products(swaps), and compound instruments and other derivatives composed orderived from these instruments.

A trade is the exchange of a lot of instrument L for a quoted instrumentQ. The lot instrument L is traded in an integral multiple of a fixedquantity referred to as the lot size. The quoted instrument Q is tradedin a quantity determined by the quantity of the lot instrument L and theprice. The price is expressed as Q per L. In a spot FX trade, the lotinstrument L and the quoted instrument Q are implicit contracts fordelivery of a currency on the “spot” date (typically two business daysafter the trade date).

In the present specification and claims, entities that wish to tradewith each other are referred to as “agents” 2. Agents 2 that extendcredit to other agents 2 are referred to as credit-extending agents 5.Agents 2 that do not extend credit to other agents 2 are referred to asclients 4 or non-credit-extending agents 4.

Two agents 2 may have direct trading channels 3 between them, where thetrading channels 3 correspond to credit extended from onecredit-extending agent 5 (typically a bank, financial institution, orany clearing entity) to the other agent 2. Trading channels 3 aretypically secured via placement of collateral (margin) or other form oftrust by an agent 2 with the credit-extending agent 5. Typically,trading channels 3 amongst credit-extending agents 5 andnon-credit-extending agents 4 already exist. In the spot FX market,these trading channels 3 are referred to as trading accounts. In thecase that two credit-extending agents 5 have a trading channel 3 betweenthem, only one agent 2 acts in a credit-extending capacity with regardsto that trading channel 3.

Credit-extending agents 5 that allow the central computer 1 to utilize aportion of their trading channels 3 to allow other agents 2 to tradewith each other are referred to as “credit-bridging agents” 5. In apreferred implementation of the present system, existing banks,financial institutions, and clearing entities are credit-bridging agents5 as well as credit-extending agents 5; and existing trading customersof those institutions 5 are clients 4.

The proposed system allows two entities to trade with one over acurrently unexhausted “credit path” connecting them via one or morecredit-bridging entities. On the other hand, two entities cannot tradewith one another at a given point in time over a credit path if thatcredit path is exhausted. For example, a first entity wishing to tradewith a second entity via a third, credit-bridging entity may have usedup all of its available credit with the third entity during some currentpredetermined time period, precluding a trade. Still further, the thirdentity may currently forbid any credit bridging between the first andsecond entities, again precluding a trade. One embodiment of theproposed system thus uses information regarding pre-existing creditrelationships between entities and current values indicating whethercredit-bridging entities are currently permitting or forbidding creditbridging between entities in order to facilitate trading amongstentities over indirect credit paths, including trades betweennon-credit-extending entities.

In another embodiment, the proposed system facilitates trading by usinga clearing facility to ensure that trades between entities (includingnon-credit-extending entities) are honored. The clearing facility may beindependent of the proposed system. Still further, the proposed systemmay provide a choice of a plurality of clearing facilities.

Compared with prior art systems, the present invention gives a relativeadvantage to clients 4 compared to credit-extending agents 5, byenabling one-way or two-way orders from any agent 2 to be instantlydisplayed to all subscribing agents 2, enabling a trade to take place ata better price, with high likelihood, than the price available toclients 4 under prior art systems. The present invention brings togetherclients 4 who may be naturally on opposing sides of a trade, withoutconventional spreads historically charged to them 4 by credit-extendingagents 5 for their 5 service as middlemen. Of course, credit-extendingagents 5 also benefit on occasions when they are natural sellers orbuyers.

Unlike prior art systems, the present invention arranges multi-hop dealsto match orders between natural buyers and sellers who need not have adirect trading relationship. For the application to spot FX trading, amulti-hop deal can be realized through real or virtual back-to-backtrades by one or more credit-bridging agents 5. In terms of theunderlying transfers of financial instruments, a multi-hop deal issimilar to the existing practice of trade “give-ups” from one broker toanother.

Unlike prior art systems, the present invention computes trading limitsfrom not only cumulative volume but also from net position limits, whereboth volume and position limits may be set in terms of the tradedinstrument (instrument L for instrument Q), in terms of any underlyinginstruments to be exchanged (delivered) upon settlement (such as Lindividually, Q individually, or other instruments), or in terms of thenotional valuations of such instruments. This allows all agents 2,especially credit-bridging agents 5, to control risk far more flexibly.Limiting traded or delivered instruments' cumulative volume helps tomanage settlement risk. Limiting a traded instrument's net position (netL:Q position) helps to manage market risk. Limiting a deliveredunderlying instrument's net position (total net L, total net Q, or someother underlying instrument's position) helps manage market and creditrisk by reflecting the ultimate effect of any trade on any account'sfuture balance sheet. The cumulative volume limits allowed by prior artsystems are able to address only settlement risk concerns.

The present invention has a natural symmetry; in the preferredimplementation, not only are credit-bridging agents 5 (financialinstitutions) able to operate as market makers and post one-way (just abid or ask) and two-way (both bid and ask) prices to agents 2, butclients 4 may post one-way and two-way prices to credit-bridging agents5 and other clients 4 of any other credit extending or credit bridgingagent 5. This symmetry is not present in prior art trading systems.

When operating as market makers using the proposed system, bothcredit-extending entities and non-credit-extending entities are able topost bid and offer prices to the market in general (i.e., to any entitysubscribing to the proposed system and having an unexhausted credit pathto the market maker) or to other entities in particular (e.g., the setof one or more entities deemed to be acceptable by the market maker).

The ability of agents 2 to post limit orders can coexist quite well withthe existing interbank fx market. For example, the proposed systemallows non-credit-extending agents to operate as market makers, whilecredit-extending agents that take those deals would be able to move thisinventory through a variety of channels. The aggregate volume from manyclients' fx flows provides an incentive for more credit-extendingentities (e.g., banks) to subscribe to the proposed system. The additionof more subscriber credit-extending entities will likely make the bidand offer prices more competitive, which in turn attracts morenon-credit-extending entities (e.g., clients).

The present invention uses a central computer 1 to calculate tradinglimits, to prepare custom limit order books 24,25, and to match orders,but all post-trade bookkeeping and settlement is handled in ade-centralized manner by the counterparties 2 involved in each trade.The central computer 1 is a network of at least one physical computeracting in a closely coordinated fashion.

Every agent 2 subscribing to a system employing the present inventioncan be thought of as a node 2 in an undirected graph (FIGS. 1-5, 10).The undirected edges 3 of such graphs indicate the existence of atrading channel 3 (account) between two nodes 2, typically anarrangement of trading privileges and limits based on the extension ofcredit from one node 2 to another 2 and likely backed by collateralplaced by one node 2 with the other 2. Some nodes 5 in the graph,corresponding to credit-bridging agents 5, allow credit to be bridged,while other nodes 4 are clients 4 who permanently or temporarily forbidcredit bridging. For the application to spot FX trading, acredit-bridging agent 5 authorizes the central computer 1 to initiateback-to-back spot trades, where simultaneous trades in oppositedirections at the same price are made between the credit bridging agent5 and two or more different agents 2, such that the net position effectto the credit bridging agent 5 is exactly zero.

For each trading channel (account 3), the central computer 1 maintains aset of limits set by the credit-extending agent 5 and a set of limitsset by the non-credit-extending agent 2. Either of these sets of limitsmay be empty. These limits specify maximums of cumulative volume of eachtraded instrument L:Q, maximum cumulative volume of an underlyinginstrument (e.g. L, Q, or other), maximum cumulative notional value(e.g. U.S. dollar equivalent), maximum positive or negative net positionof each traded instrument L:Q, maximum positive or negative net positionof the underlying instrument (e.g. L, Q, or other), and maximum absolutenet position notional (e.g., U.S. dollar equivalent) value total.

For each trading channel (account) 3, the central computer 1 maintainsinformation sufficient to compute the current value of all thequantities upon which limits may be placed. The cumulative volume valuesare reset to zero with some period, typically one business day, at sucha time as is agreeable to both agents. It is illustrative to note thatthe cumulative volume values always increase toward their limit witheach trade, while the net position values may be decreased back to zeroor near zero and may change in sign.

An agent 2 may add, remove, or adjust any of the elements of the set oflimits specified by that agent 2 at any time.

Since trading is permitted or denied based on these limit-relatedvalues, the central computer 1 provides a way for the agents 2 that areparties to an account to inform the central computer 1 of any externalactivity that would affect these values, such as odd-lot trades andtrades made through existing trading devices, or to simply reset alllimit-related values to a predefined state.

Based on the current values of all these limit-related quantities, thecentral computer 1 computes for each traded instrument L:Q a directedgraph (FIG. 6) of maximum excursions. In the directed graph for eachtraded instrument L:Q, each directed edge 3 from a node 2 to anothernode 2 has a value that indicates, based on the current position, howmany of the traded instrument L:Q may be bought by the first node 2 fromthe second node 2. There are typically directed edges 3 in bothdirections between any pair of nodes 2, since the instrument L:Q may bebought or sold. The trading limit values (maximum excursions) of thesebuying and selling edges 3 between two nodes 2 vary from moment tomoment as trades are made and/or credit limits are adjusted by eithernode 2.

For all traded instruments L:Q and for all nodes 2 that trade L:Q andfor all other nodes 2 that trade L:Q, the central computer 1 uses thedirected graph of maximum excursions (FIG. 6) to compute the maximumflow from the first node 2 to the second node 2. Note that this meansthat each pair of nodes 2 that trade L:Q will have the maximum flowbetween them 2 calculated in both directions.

The prior art systems could be simulated by the present invention byfirst eliminating the ability of any node 2 to be a credit-bridgingagent 5 so that the “single-pair maximum flow” is merely the flowenabled by directed edges 3 connecting the pair of nodes 2 directly.Second, all trading limits by non-credit-extending agents 4 would bedisabled and only cumulative volume limits on underlying instrumentswould be allowed for credit-extending agents 5, corresponding to limitsonly on settlement risk.

For purposes of illustrating the present invention, consider, forexample, an agent A extending credit to agent B for the purposes oftrading spot FX using the present invention, and between the U.S. dollar(USD), Euro (EUR), and Japanese Yen (JPY) in particular. Suppose agent Bbuys 1 lot of EUR:USD at 0.9250, then sells 1 lot of EUR:JPY at 110.25,with both trades having agent A as counterparty 2. The first trade willupon settlement result in 1,000,000 EUR received by agent B and 925,000USD paid by agent B, while the second trade will result in 1,000,000 EURpaid by agent B and 110,250,000 JPY received by agent B. From theperspective of agent B, the account stands +1 M EUR toward the EUR:USDcumulative volume limit, +1 M EUR toward the EUR:USD net position limit,+1 M EUR toward the EUR:JPY cumulative volume limit, −1 M EUR toward theEUR:JPY net position limit, +2 M EUR toward the EUR cumulative volumelimit, +925,000 USD toward the USD cumulative volume limit, +110,250,000JPY toward the JPY cumulative volume limit, ZERO with respect to the EURnet position limit, −925,000 USD toward the USD net position limit, and+110,250,000 JPY toward the JPY net position limit. Further supposingthat the instrument valuations in agent B's home currency of USD are0.9200 EUR:USD and 0.009090 JPY:USD, then the account stands (2M×0.9200+925,000+110,250,000×0.009090=) 3,767,172.50 USD toward thenotional USD cumulative volume limit (useful for limiting settlementrisk), and (0×0.9200+925,000+110,250,000×0.009090=) 1,927,172.34 USDtoward the absolute notional net position total.

Now suppose agent B buys 1 lot of USD:JPY at 121.50, which uponsettlement will result in 1,000,000 USD received and 121,500,000 JPYpaid. The net single-instrument positions are now 0 EUR, 75,000 USD, and−10,250,000 JPY. Rather than delivering JPY at settlement (which willentail carrying a JPY debit balance in the account), agent B willprobably choose to arrange an odd-lot deal with agent A to buy10,250,000 JPY at a rate of, for instance, 121.40 USD:JPY, at a cost of84,431.63 USD, resulting in final account position values of 0 EUR,−9,431.63 USD, and 0 JPY. In other words, agent B has lost 9,431.63 USDin its account with agent A once all the settlements occur.

Alternatively, agent B may choose to “roll forward” any EUR or JPY netposition from the spot date to the next value date, or to any forwarddate by buying or selling an appropriate FX swap instrument from or toagent A.

Odd-lot spot, odd-lot forward, odd-lot swap, and deals with a specificcounterparty 2 are not amenable to trading via the “limit-order book”matching system, but instead may be facilitated by the central computer1 through a request-for-quote mechanism. Since the central computer 1knows the net positions of all the accounts, it may further recommendsuch deals on a periodic basis, such as a particular time that bothagents 2 consider to be the end of the business day for the account inquestion.

For the application of the present invention to markets other than spotFX, triangular interactions between traded instrument pairs are not asmuch a concern. The limits set by credit-extending agents 5 are handledthe same way, where the limits on commodity holdings or currencypayments are translated by the central computer 1 into excursion limits(how many lots an agent 2 may buy or sell) in real-time.

The present invention can be implemented in a combination of hardware,firmware, and/or software. The software can be written in any computerlanguage, such as C, C++, Java, etc., or in a combination of computerlanguages. The hardware, firmware, and software provide three levels ofcontent: a) trade screens, b) post-trade content for back offices andclearing units, and c) real-time credit management content. Through anAPI (application programming interface) 38, agents 2 can securelymonitor and change in real time the credit limits they have specifiedfor each trading channel 3 in which they participate. (Note that themaximum flow across a trading channel 3 is the minimum of the tradinglimits specified by the two agents 2 associated with the channel 3, so anon-credit-extending agent 4 can only further reduce the credit limitsassigned by the credit-extending agent 5.)

The link between the agents 2 and the central computer 1 can be anytelecommunications link—wired, wireless, Internet, private, etc.Computer 1 can be located anywhere in the world. It can be mirrored forpurposes of data backup, to increase throughput, or for other reasons;in that case, there is a second central computer 1(2). The backupcentral computer 1(2) is a network of at least one physical computeroperating in a closely coordinated fashion. Such a backup computer 1(2)is shown in FIG. 7, and insures that there will be no interruption ofservice with hardware, software, or network 6,7 failures (neither duringthe failure nor during the needed repairs); and further insures that thepresent invention has the ability to recover from a disaster event.

Since the present invention operates on a global scale, said operationhas to satisfy local laws and regulations to enable the services of thepresent invention to be provided. The present invention is thereforedesigned to enable such accommodations to be made.

The present invention supports purpose-specific “atomic units” enablingtrading between specific types of agents 2. The basic atomic units are“type 0”, “type 1”, and “type 2”, where a “type 0 unit” involves asingle pair of agents 2 where one extends credit to the other, a “type 1unit” involves a single client 4 trading with a collection ofcredit-extending agents 5, and a “type 2 unit” involves a singlecredit-bridging agent 5 enabling a collection of its clients 4 to tradewith itself 5 and with each other 4.

FIG. 1 illustrates the simplest atomic unit, type 0. A first agent 2(1)and a second agent 2(2) wish to trade at any given time some number ofround lots of instrument L in exchange for a quantity of another item Q,which we refer to as the quoted instrument or quoted currency. A tradingchannel 3 (account) between the two agents 2 allows for the execution ofthe trades and settlement of the underlying instruments. Inherent in thetrading channel 3 are flow limits (trading limits) on the items L,Qbeing traded and limits on any underlying instruments exchanged uponsettlement of the L,Q trade. A central computer 1, under control of theoperator or owner of the system, is coupled to the two agents 2. Thecomputer 1 is adapted to convey to each agent 2 current bid orders andoffer orders originating from the other participating agent 2. Thecurrent set of tradable bid and offered prices and sizes is constrainedby the trading channel's trading limits, and is preferably conveyed inthe form of a custom limit order book 24,25 for each agent 2, as will bemore fully described below. The custom limit order book 24, 25 is achart, typically displayed on the agent's computer, of a preselectednumber of bids and offers for the instrument pair L,Q in order of price,and within price, by date and time (oldest first).

Typically, but not necessarily, each agent 2 is coupled to the centralcomputer 1 when the agents 2 are trading. The identification of one ofthe two agents 2 as the “credit-extending agent 5” is necessary only forthe creation of a trading channel 3, since either agent 2 may postorders (making the market) in the same way.

FIG. 2 illustrates the type 1 atomic unit: a client agent 4 is lookingto trade with several credit-extending agents 5 with whom it 4 has acredit relationship. Note that because each credit-extending agent 5participates in only a single trading channel 3 (with which the centralcomputer 1 is aware), there is no opportunity for the credit-extendingagents 5 to act as credit-bridging agents 5. The type 1 scenarioinvolves the client 4 placing a one-way or a two-way order via computer1. Computer 1 insures that every institution 5 with which the client 4has a credit relationship sees the order instantaneously. Under naturalparameters, the price of this trade will be better or equal to a“market” price that client 4 may be able to get. The institutions 5 willbe forced to compete by knowing that at any time any one of them may hitthe posted price and thereby lock out the remaining institutions. Shoulda deal not be forthcoming, client 4 has the choice of refreshing itsposted price to enable an efficient means of price discovery. If none ofthe institutions 5 wish to deal at the client's current price, they 5may post their own counter-offers that then appear on the client'scustom limit order book 24,25, but not on those of the otherinstitutions 5. The client 4 may then choose to modify or cancel itsorder to deal at the best price possible, while the institutions 5benefit by seeing this client's 4 possible interest in buying orselling.

The institutions 5 may also supply via computer 1 tradable bid andoffered prices to the client 4 that will not be seen by the otherinstitutions 5.

The solid lines in FIG. 2 represent credit relationships between client4 and credit-extending agents 5. The credit-extending agents 5 may havecredit relationships outside the scope of the present invention, butonly those trading channels 3 whose credit limits are maintained by thecentral computer 1 are illustrated or discussed. The dashed lines inFIG. 2 represent communication links between the agents (4,5) and thecentral computer 1.

As a sub-species of type 1, there can be multiple clients 4, as long asall such clients 4 have credit relationships with the samecredit-extending agents 5, and the clients 4 are not allowed to tradewith each other.

Computer 1 provides several post-trade capabilities to the client 4 andto the financial institution's 5 trading desk as well as to its 5 backoffice and credit desk, all in real-time.

The clearing of the trade is done by conventional means. The operator ofcomputer 1, though it could, does not need to act as a clearing agentand does not need to hold as collateral or in trust any financial orother instruments. The client 4 can direct that all clearing is to behandled by a certain credit-extending agent 5. The clearing proceduresare dependent upon the instruments traded and any netting agreements orspecial commodity delivery procedures required for those instruments.

The type 2 atomic unit is illustrated in FIG. 3. Type 2 enables client 4to client 4 dealing among the clients 4 of a particular credit-bridgingagent 5, as well as enabling client 4 to credit-extending agent 5trading. As usual, the anonymous order-matching process is triggeredwhenever an order to buy is made at a price equal to or higher than thelowest outstanding offer to sell, or vice versa. If the match is betweena client 4 and the credit-bridging agent 5, then a single deal is bookedbetween those two parties 2. However, if the match is between twoclients 4, then two back-to-back deals are booked, one between theseller client 4 and the credit-bridging agent 5, and the other betweenthe buyer client 4 and the credit-bridging agent 5. This is akin tocreating virtual trading channels between the clients 4. A client 4 whohas a credit relationship with the credit-bridging agent 5 is able topost its one-way or two-way order via computer 1, which causes the orderto be instantly displayed to all other clients 4 and to thecredit-bridging agent 5 itself if the existing credit limits between theposting client 4, the credit-bridging agent 5, and the receiving client4 would allow a portion of the order to be executed.

This “mini-exchange” has the liquidity of the natural supply and demandof the entire client 5 base, combined with the market-making liquiditythat the credit-bridging agent 5 would be supplying to its clients 4ordinarily. It is certainly expected, and beneficial to the overallliquidity, that the credit-bridging agent 5 will be able to realizearbitrage profits between the prices posted by its clients 4 and theprices available to the credit-bridging agent 5 through other sources ofliquidity. In fact, there may be instances in some markets where clients4 are also able to arbitrage against other trading systems.

Again, computer 1 provides several post-trade capabilities to the client4 and to the trading desk, the back office, and the credit desk of thecredit-bridging agent 5, all in real-time, as in type 1.

A pair of back-to-back trades is illustrated in FIG. 4, showing thatagents 4(2) and 4(4) are the ultimate buyer and seller of the deal, butthey each deal only with the credit-bridging agent 5 as their immediatecounterparty 2.

As with all the various atomic units, central computer 1 updates thecurrent tradable information after each trade, and causes thisinformation to be displayed on the computers associated with all of thesubscriber agents 2.

Again, computer 1 provides several post-trade capabilities to theclients 4, as well as to the credit-bridging agent's 5 trading desk, its5 back office, and its 5 credit desk, all in real-time. Thecredit-bridging agent 5 acts as a clearing agent for this trade, and isable to monitor (e.g., using XML) the client-to-client exposure, in realtime.

Thus is created a price-discovery mechanism for end-users 2 with directtransparency between entities 2 wishing to take opposite sides in themarket for a particular instrument. The present invention encompassesdecentralized operation of an arbitrary number of separate, type-1 andtype-2 atomic units. Efficient price discovery is provided to the enduser 2 in a decentralized liquidity rich auction environment, leveragingexisting relationships, and co-existing with and indeed benefiting fromtraditional trading methodologies.

Furthermore, an arbitrary number of different type 0, type 1, and type 2atomic units may be interconnected, bottom-up, as illustrated in FIG. 5,to provide, at all times, a liquidity rich efficient price-discoverymechanism to the subscribing agents 2, enabling more and more agents 2,across different atomic types, to conduct efficient direct auctions witheach other directly. The various atomic units may be interconnected intoa molecular credit-network.

In FIG. 5, which may be considered to illustrate a “type 3” scenario,shaded circles represent credit-bridging agents 5 and un-shaded circlesrepresent clients 4.

For purposes of simplicity, central computer 1 is not shown on FIG. 5,but is in fact coupled to all nodes 2. Each node 2 has proprietaryclient software on a computer associated with said node 2, enabling saidnode 2 to communicate with central computer 1. Such software may takethe form of a Web browser. The diameters of the arrow-headed lines 3represent instrument excursion limits deduced from each tradingchannel's various types of credit limits. A “shortest weighted paths”algorithm or other minimum cost flow algorithm is used to calculate theminimal path between two agents 2 subject to credit flows to enable atrade between the agents 2. The trading agents 2 may be arbitrarilyremoved from one another, both in geographic terms as well as by type ofbusiness activity in which they 2 are involved.

Each connected piece of FIG. 5 maintains full transparency of ordersposted on computer 1 to all financial institutions 5 and clients 4 whoare on any unexhausted credit path 3 to the posting entity 2. Each ofthe entities 2 who are able to see the posted order are in effectcompeting, through the reverse auction, for that particular deal,enabling further efficient price-discovery to the posting entity 2.

Prior to each trade, computer 1 internally computes the values thatdefine one of these FIG. 5 graphs for each pair of instruments beingtraded. From the graph, computer 1 creates a table of multi-hop tradinglimits showing the trading limits between each pair of nodes 2. From thetable of multi-hop trading limits, computer 1 prepares a custom limitorder book 24,25 for each node 2 for each traded instrument pair. Afterevery trade, computer 1 recalculates the trading limits 3, thus leadingto a new graph (FIG. 5) for that instrument pair. Recalculating thetrading limits 3 for a given traded instrument pair can affect thetopology (trading limits 3) of other graphs (FIG. 5) for other tradedinstrument pairs. This can occur, for example, when the trading limitsare notional trading limits.

On FIG. 5, if an agent 2 has imposed its own internal limits that aresmaller than the trading limits that have been imposed by acredit-extending agent 5 that is extending it 2 credit, computer 1 usesthe smaller of the two limits when it creates FIG. 5.

Each trading channel 3 represents an account between a credit-extendingagent and a client agent 4. In the preferred implementation of thisinvention, all credit-extending agents are credit-bridging agents 5.Even when two adjacent nodes 2 are fully qualified to becredit-extending agents 5, one acts as the credit-extending agent 5 inthe transaction and the other acts as the client agent 4 in thetransaction. The accounts that exist between credit-extending agents 5and client agents 4 comprise specified input credit limits, balanceholdings, and collateral; computer 1 calculates trading limits from thisinformation.

The operator of computer 1 typically has, in its standard agreement witha subscribing agent 2, language stating that if the agent 2 has enteredinto a written subscription agreement with the operator of computer 1and said agent 2 trades outside of the network 6,7 operated by theoperator of computer 1, that agent 2 is obligated to notify the operatorof computer 1 about such outside trades, so that computer 1 canrecalculate the trading limits as necessary.

FIG. 5 can be thought of as an n-hop credit network, where n is anarbitrary positive integer. In any transaction, the instrument flow canfan out from one source node 2 and then collapse to the destination node2; the instrument flow does not have to stay together as it flows fromthe source 2 to the destination 2. See FIG. 10 for an example of thisphenomenon. In calculating the maximum capacity of the network 6,7,computer 1 uses a maximum flow algorithm such as one described inchapter 7 of the Ahuja reference cited previously. In determining theactual flow used to complete the trade, computer 1 uses a minimum costflow algorithm such as one described in chapter 9 of said Ahujareference, where the cost to be minimized is a function of the actualcost to execute the trade and other factors, such as projectedsettlement costs, flow balancing heuristics, and a randomizingcomponent.

The network 6,7 of FIG. 5 is a non-disjointed network. By that is meantthat every node 2 in the network 6,7 is coupled to at least one othernode 2, and at least one of the agents 2 associated with each tradingchannel 3 is a credit-bridging agent 5. The individual trading limits 3that computer 1 computes for each agent 2 pair are dependent upon thetopology of the network 6,7. Computer 1 essentially transforms thenetwork 6,7 into a virtually cliqued networked. A “cliqued network” isone in which every node 2 is connected to every other node 2. A“virtually cliqued network” is one in which every node 2 has acapability to trade with every other node 2, but not necessarilydirectly. In order to preserve the desired feature of anonymity, eachnode 2 knows the identities of only its immediate trading partners 2,and does not necessarily know whom 2 it is actually trading with.

As a trading system that leverages the existing relationships in themarket for the traded instrument, the present invention provides allmarket players 2 (typically banks, financial institutions, clearingentities, hedge funds, and any corporations or other entities) theability to trade directly with each other through a custom limit orderbook 24,25. These agents 2 may already be connected together with creditrelationships, but prior art systems allow trading only between twoparties that have an explicit credit arrangement. The present inventionanalyzes the credit-worthiness of a potentional counterparty 2 at ahigher level, performing this analysis in real time, and providing eachparty 2 with a limit order book 24,25 customized to its 2 current creditavailability.

For example, in FIG. 6 we consider a small network of foreign exchangeplayers: banks 5(B) and 5(C), which have a credit relationship with eachother, and clients 4(A) and 4(D), who have margin placed with banks 5(B)and 5(C), respectively (we leave the margin currency and tradedinstrument unspecified). The specified input credit limits are specifiedas traded instrument L:Q credit limits (just one way of specifying inputcredit limits out of eight possible ways enumerated in the presentpatent application). Client 4(A)'s margin allows it to trade +/−10 Mwith 5(B), 5(B)'s relationship allows it to trade +/−50 M with 5(C), and5(D)'s margin allows it to trade +/−5 M with 5(C). This information issupplied to computer 1, which draws FIG. 6 from said information.

FIG. 6 illustrates a simplified type 3 network in which there are twoclient agents 4 and two credit-extending agents 5 which are alsocredit-bridging agents 5 FIG. 6 also illustrates the trading limitsbetween each pair of coupled agents 4,5. Table 1 shows the maximummulti-hop credit limits that are then calculated by computer 1 for thesimplified network of FIG. 6 as follows:

TABLE 1 A B C D A infinity 10 M 10 M 5 M B 10 M infinity 50 M 5 M C 10 M50 M infinity 5 M D  5 M  5 M  5 M infinity

Computer 1 then uses the information contained in Table 1 to create acustom limit order book 24,25 for each agent A, B, C, D, and causes thecustom limit order book 24,25 to be displayed on the computer screen ofthe respective agent A, B, C, D. The filtered bids and offers in thecustom limit order book 24,25 are for volumes that are an integralmultiple of the lot size even if the computed Table 1 amounts containvalues which are not integral multiples of the lot size, withnon-integral multiples rounded toward 0.

If client A posts a bid for 10 M, computer 1 causes the full bid toappear on the custom limit order books 24,25 of banks B and C, andcomputer 1 causes a filtered bid for 5 M to appear on the custom limitorder book 24,25 of client D, because the maximum credit (implicit orexplicit) available between A and D is +/−$5 M. If there is no implicitor explicit credit available between two nodes 2, they 2 are not allowedto see each other's bids and offers at all on their custom limit orderbooks 24,25.

The network 6,7 of the present invention is preferably built using theInternet Protocol (IP) (because of its ubiquity), and may reside on theInternet itself or other public IP network 7 (FIG. 7).

It is also possible to locate part or all of the network 6,7 on aprivate fiber backbone 6, so that information bound for the Internet 7can traverse most of the distance to its destination on the presumablyhigher speed private network 6. The slower public Internet 7 is thenused for just the last segment of travel. It is also possible to provideclients 2 with dedicated bandwidth through private IP networks 6 inorder to provide additional levels of quality and service. A singlededicated connection 6 may be backed up by an Internet connection 7, ormultiple private connections 6 can be used to avoid the public network 7entirely.

On FIG. 7, the three illustrated agents 2 can be three separatecompanies, three computers within the same company, or a hybrid of theabove.

The network 6,7 interfaces with both people and automated systems(computers), so it provides three access methods:

human—Graphical User Interface (standalone or browser-based application)for trading, interactive queries, and account management;

human/computer—HTTP reports interface (HTML, XML, PDF, or Excel) forqueries only;

computer—Application Programming Interface 38 (available in Java andCOBRA with bridges to FIX, JMS, SOAP, and ebXML) for trading, queries,and account management.

An agent's 2 software can be launched from the agent's 2 browser but runas a standalone application for better performance and stability.

The computer of each agent 2 can have associated therewith anapplication programming interface (API) 38. The API 38 is a standardinterface exposed by the central computer 1 that enables the user 2 towrite customized instructions enabling two-way communication betweencentral computer 1 and the user 2. In the case where the user 2 is acredit extending agent 5, the API 38 can be used to update the agent'sbackoffice information. The agent 2 can program his API 38 to make andcancel orders (bids and/or offers). The agent 2 can use his API 38 toreceive and reformat custom limit order books 24,25 for any instruments.The agent 2 can use his API 38 to set trading limits, with theunderstanding that the actual trading limits are the minimum of thetrading limits specified by the two agents 4,5 associated with anaccount. The API 38 can be programmed to estimate how much it would costan agent 2 to liquidate his position in an instrument. The API 38 can beprogrammed to estimate that agent's profit/loss amount for eachinstrument being traded; this information can be combined with theagent's custom limit order book 24, 25. Anything that can be achieved bythe GUI (graphical user interface) (FIGS. 12-21) can be achieved via theAPI 38.

Any and all features of the API 38 can be programmed to operateautomatically, including automatic bidding, offering, buying, andselling. Automated processes accessing computer 1 via applicationprogramming interface 38 or a bridge use the same cryptographicprotocols as for a human agent 2 inputting instructions via hiscomputer's GUI. Whether an API 38 or a GUI is used, an agent's privatekey for computerized access to computer 1 can be stored in the agent'scomputer, provided said computer has sufficient security safeguards.

As stated above, an entity using the proposed system may developprograms that partially or fully automate the trading process. Suchprograms may allow, for example, the automation of market-making,hedging, and forecasting strategies. Thus, such programs canautomatically generate prices and post bids and offers in order to makea market, and can also automatically decide to hit bids/offers posted byother entities. Still further, such programs may allow a combination ofcomputer and trader-driven decision making; for example, certain bidsand/or offers may be hit automatically based on a computer forecast,while other bids and/or offers may be sent to graphical user interfaces,where action may be taken by traders.

One method for automating such processes is through the use ofextensible machine-to-machine communication protocols such as thosebased on XML. XML, or the eXtensible Markup Language, describes a classof languages each called an “application” of XML. With XML, the producerof documents is no longer restricted to telling client browsers what adocument should look like, but can instead be very explicit about whatdata a document contains. Where HTML might include instructions torender text as bold red text preceded by a particular “bullet” symbol,XML data instead specifies that a number is a change in a stock price,ignoring the presentation details. By saying what the data is, ratherthan how it should look, XML enables a new class of interactions thatmore meaningfully manipulate and respond to data. Most importantly,those interactions can be automated, involving only machine-to-machinecommunications, and allowing XML agents to act on behalf of an end user.Machine-to-machine communication may also use other protocols, e.g.,those involving the use of Document Type Definitions (DTDs) or schemas.

Machine-to-machine communication may also be used by computer systemsassociated with trading entities to automatically query a large numberof credit-extending entities (e.g., banks) simultaneously in order torequest their rate (quote) for a desired currency. Such computer systemscan then instantaneously and automatically choose the best price andplace a corresponding order. This process could be performed, forexample, using XML, where an XML document describes a query for a priceto each bank, and each bank replies with its rate using a corresponding“chunk” of XML data.

Privacy, authentication, and non-repudiation are achieved in the presentinvention via the use of cryptography in a variety of different forms.The cryptographic techniques can comprise symmetric key and/orasymmetric key (public key) cryptography. All data streams areencrypted, e.g., by using SSL (Secure Socket Layer) connections or acombination of SSL encryption with additional authentication andencryption. Authentication can be required between computer 1 and anagent 2 at any and all times these devices 1,2 communicate with eachother. This authentication can be achieved through the use of digitalcertificates. Revalidation of credentials can be required at the time atrade is consummated.

Each agent 2 may store its private key on a tamper-resistant hardwaredevice such as a smartcard, protected by a password. The combination ofa physical token (the card) with a logical token (the password) ensurestwo levels of security. The hardware token may contain a small CPU thatallows it to perform the necessary cryptographic operations internally,so that the agent's private key never leaves the smartcard. In apreferred embodiment, computer 1 handles bulk encryption/decryptionusing symmetric key cryptography after the slower public keycryptography has been used to exchange a session key between agent 2 andcomputer 1.

While trading in the present invention is peer-to-peer, order matchingfor any particular instrument is done at a centralized location 1 tomaintain transactional integrity. FIG. 8 illustrates the order matchingprocess. In step 8, the first agent 2(1) places a bid via its softwareto computer 1, which accepts the bid at step 9. Computer 1 thencalculates changes to the custom limit order books 24,25 of agents 2(1)and 2(2) at steps 10 and 11, respectively, taking into accountappropriate trading limits 3. At step 12, the second agent 2(2) takesthe bid. Step 12 occurs right before step 13, in which a third agent2(3) (not illustrated) posts a new offer (bid or offer) for the tradedinstrument L:Q. At step 14, computer 1 makes the match between the firstagent 2(1) and the second agent 2(2).

Reporting of the trade is described below in conjunction with FIGS. 34and 35.

A network 6,7 implementing the present invention can span the entireworld, which means that there may be time differences for a message sentby different agents 2 to computer 1. Assuming a network 6,7 that sendssignals at the speed of light but that cannot transmit through theEarth, a message sent to the other side of the Earth would have around-trip time of at least 130 milliseconds. On existing IP networks,it is observed that if the central computer 1 were located in New York,the maximum average round-trip communication time between the centralcomputer 1 and a computer in any of the major financial centers is lessthan 300 milliseconds.

We want to ensure that all agents 2 have a level playing field inaccessing computer 1, regardless of where these agents 2 are situatedaround the world. Determining the latency for each agent 2 and thenintroducing an individual delay on an agent-by-agent basis to try toequalize time-of-arrival at computer 1 would be very difficult (due toshort term fluctuations in network 6,7 lag), and could have theundesired effect of overcompensating. A malicious agent 2 could alsofalsify its network 6,7 delay, unfairly obtaining early access tocomputer 1.

In order to compensate for the various time lags in sending messagesbetween agents 2 and computer 1 on a global basis, the present inventiontransmits information as rapidly as possible while flagging the order ofmessages to compensate for latency. The flagging is done by means ofborder outpost computers 16 (FIG. 9).

For agents 2 remote from computer 1, a border outpost computer 16 isinserted into the network 6,7, typically where the agent's data entersthe private backbone 6 that connects to computer 1. Each border outpostcomputer 16 comprises a CPU 18, a trusted time source 17, and aninput/output port 19. Time source 17, which may comprise a GPS clockaccurate to a millionth of a second, is used to generate a digital timestamp that is added to each data packet before it is forwarded tocomputer 1. The GPS clocks 17 of all the border outpost computers 16 aresynchronized with each other to a high degree of accuracy (typically onemicrosecond). The time stamp may be placed onto the packet without theborder outpost computer 16 having to understand the packet or haveaccess to its contents. At the computer 1 site, the time stamp isstripped off before the packet is processed, and then reassociated withthe data after it is decrypted and parsed into a command. Computer 1then sorts the messages into a queue by time order. After a fixed timedelay, the message that is at the front of the queue is serviced bycomputer 1. The fixed time delay is chosen so that with a high degree ofcertainty a message from the remotest agent's 2 computer will arrive atcomputer 1 within the fixed time delay. The purpose of the fixed timedelay is to allow all messages that might be the first-originatedmessage to have a chance to arrive at computer 1 before execution of anymessages takes place. The time stamp may be encrypted using either asymmetric or assymetric cipher, to prevent its modification orfalsification.

FIG. 10 is a deal fulfillment (flow) graph, illustrating the flow in thelot instrument. The lot instrument L is the portion of the tradedinstrument that has to be traded in a round lot, typically a multiple ofa million. The quoted instrument Q is that portion of the instrumentbeing traded that is expressed as the lot instrument times a price. Inthis example, agent 4(2) buys 10 M Euros using U.S. dollars at anexchange rate of 0.9250 from agent 4(1). Since the Euro is the lotcurrency in this example, it has to be specified in a round lot(multiple of 1 million Euros). F(L), the lot size (volume), is 10million and F(Q), the quoted volume, is 9,250,000. In this example,there are three intermediaries (middlemen): agents 5(1), 5(2), and 5(3).Only credit-bridging agents 5 can be middlemen. For purposes ofsimplification, we show on FIG. 10 the flow of just the lot instrumentL. There is also a counterflow in the quoted instrument Q, which can bederived from the lot flow and the traded price. For example, on the edge3 between node 5(1) and 4(2,) 2 M represents the flow of 2 million Eurosfrom agent 5(1) to agent 4(2), as well as the counterflow of 1,850,000U.S. dollars from agent 4(2) to agent 5(1).

FIG. 11, a simplified focus change diagram, illustrates the sequence ofscreen shots appearing on the display of a computer of an agent 2 who iscoupled to central computer 1. Agent 2 first encounters a log-in dialogbox 21, then a menu bar 22 where he can select from an accountmanagement dialog box 23, a net exposure screen 35, a balance sheet 36,or his custom limit order book 24,25. From custom limit order bookoverview screen 24, agent 2 can navigate to one of N order book detailscreens 25, or to an activity dialog screen 27, which can take the formof a bid dialog box 28, an offer dialog box 29, a buy dialog box 30, asell dialog box 31, or a market order screen 32. As shown in FIG. 11,various of these screens can segue into a bid/offer cancel dialog box 33or a confirmation dialog box 34.

FIGS. 12-21 illustrate most of the above screens. The login screen isshown (FIG. 12), followed by two shots of the main desktop (FIGS. 13 and14) showing the custom limit order book overview window 24 and thecustom limit order book detail window 25. The remaining screen shots(FIGS. 15-21) are of dialog boxes that can be activated from either theoverview window 24 or detail order windows 25.

FIG. 12 illustrates log-in dialog box 21. Field 41 allows agent 2 totype in his name, thus identifying the account and trader. Field 42 isan optional challenge field, provided for security purposes. Anappropriate response from the agent 2 to meet the challenge mightinclude presentation of a password, key, or digital certificate via ahardware token. Field 43 is where agent 2 enters his password. Field 44is where agent 2 enters the address of central computer 1. In the caseof an Internet connection, the URL of computer 1 is specified here. Thedata exchange between agent 2 and central computer 1 is encrypted, e.g.,by a SSL (Secure Socket Layer) connection. Field 45 is a scrollingmessage log showing status and notification of errors during the log-inprocess.

FIG. 13 illustrates the main custom limit order book screen. Field 51specifies the current account. Field 52 is a summary of the custom limitorder book for each permissioned traded instrument. In this sample,where the instruments are pairs of currencies, the traded instrumentsare identified by icons representing the flags of the countries issuingthe currencies. There are five fields 52 illustrated, representing fivepermissioned instruments. The second field 52 from the top (GreatBritain pounds for U.S. dollars) is exploded, indicating the tradedinstrument currently activated by agent 2.

Field 53 displays the top (best) orders from the point of view of theagent 2. Field 54 displays the best bid price for any agent 2 coupled tothe network 6,7. Field 55 displays the last two digits (“84”) of thebest available bid price. Field 56 displays the size at the best bidprice. Field 57 displays agent 2′s available liquidity for additionalselling. Field 58 provides agent 2 with a mouse-clickable area (the bigfigure) enabling the agent 2 to jump to the buy or sell dialog screen 30or 31, with amounts already filled in. Field 59 is a mouse-clickablenumeric keypad allowing the agent 2 to create and cancel orders. Field60 gives balance sheet values showing live valuations at market priceand the profit that was banked by agent 2 for a certain period of time,such as the current day. Field 61 is a pop-up console allowing for thedisplay of application messages, connection failure/retry messages, andbroadcast messages from central computer 1. Field 62 displays the timesince the agent 2 has logged in to computer 1. Field 63 displays thebest available offer; in this case, four digits of the available offerare used to warn agent 2 that his best available offer is far from theoverall best, due to a credit bottleneck. Field 64 shows this agent'sorders in red. Field 65 shows this agent's current net position in theinstrument being traded. Field 66 shows a summary of this agent'soffers. Field 67 is a mouse-clickable area (tab 9) enabling the agent 2to quickly cancel the top offer.

FIG. 14 illustrates a custom limit order book depth window 25. There areN of these windows 25 for each instrument, where N is any preselectedpositive integer. Typically, N is equal to five. The N windows 25display the N best bids and offers in order of price, and within price,in order of date and time, with the oldest presented first. Field 71shows bid and offer information, with the last two digits of the bid andoffer (“99” and “02”, respectively) displayed in large numerals forreadability. Field 72 shows visible (to that agent 2) bids and offerstruncated by current credit availability, individually or aggregated byprice (configurable). Bids and offers from this agent's account areshown in pink. Field 73 is a mouse-clickable field allowing agent 2 tonavigate to screen 33 (FIG. 17). Field 74 is a set of fourmouse-clickable areas enabling agent 2 to open buy, sell, bid, and offerdialog boxes (30, 31, 28, and 29, respectively), with price and sizeinformation pre-loaded from the current market.

FIG. 15 illustrates net exposure monitor 35. Each entry 81 gives thecurrent exposure for each account, broken down by traded instrument.Field 82 (“min” and “max”) shows asymmetric net position limits on aper-instrument basis. Field 83 (“current”) shows a real-time update ofnet position. Field 84 shows a graphical representation of net position.

FIG. 16 illustrates balance sheet window 36. Field 91 shows payables andreceivables, valued using the current market price. Total net positionand net position for each counterparty 2 are given. Field 91 isorganized as a tree hierarchy, and allows navigation to individualbalance sheet transfers. Field 94 shows underlying flows; they have beensent to the agent's computer in an encrypted form, and are decrypted atthe agent's computer. The decryption can be done automatically, as longas the agent 2 is logged in to the network 6,7. In field 94, one linerepresents each trade this agent 2 has made, or each trade for whichthis agent 2 was an intermediary 5. All values are live. Thiscurrency-based balance sheet 36 is capable of handling triangularinstrument swaps.

FIG. 17 illustrates the open order overview and management window 33.Field 101 shows orders (bids and offers) currently placed by that agentsummarized by traded instrument. Field 102 shows individual orders.Field 103 is a mouse-clickable area enabling the agent 2 to remove theorder from the agent's custom limit order book 24,25. All values areupdated immediately if their value has changed. In screen 33, an updateprocedure can be implemented in which the first offer is not cancelleduntil a new offer is posted. This is sometimes referred to as OCO (onecancels the other). In any event, it is never possible for an agent 2 tocancel an order after it has been taken by a counterparty 2.

FIG. 18 illustrates bid creation dialog box 28. Field 111 is a group oficons, typically in various colors to provide visual context to reduceerrors. Note that the word “Bid” is highlighted. Field 112 comprisesthree mouse-clickable areas allowing for quick up or down adjustment ofprice and direct entry of price, respectively, with initial value takenfrom the current market. Field 113 comprises three mouse-clickable areasallowing for quick up or down adjustment of size, and direct entry ofsize, with initial value configurable based upon the desires of theparticular agent 2. Field 114 is a mouse-clickable area allowing theagent 2 to submit the bid, and has an optional confirmation dialog boxassociated therewith. An agent 2 can post his bid for just a shortperiod of time and then withdraw it. He 2 can post multiple bids atmultiple prices. When a counterparty 2 takes part or all of his bid,computer 1 recalculates the trading limits. Agent 2 can make his bidlimited to “only if it is available now” or as an offer to buy.

FIG. 19 illustrates offer creation dialog box 29. Field 121 comprises aset of icons, typically colored to 16 - provide visual context to reduceerrors. Note that the word “Offer” is highlighted. Field 122 comprisesthree mouse-clickable areas allowing agent 2 to quickly achieve up ordown adjustment of price and direct entry of price, with initial valuetaken from the current market. Field 123 comprises three mouse-clickableareas providing a quick means for agent 2 to achieve up or downadjustment of size and direct entry of size, with initial valueconfigurable on a per user 2 basis. Field 124 is a mouse-clickable areaallowing agent 2 to post the offer, and has an optional confirmationdialog box associated therewith.

FIG. 20 illustrates buy (immediate execution bid) dialog box 30. Field131 comprises a set of icons, typically colored to provide visualcontext to reduce errors. Note that the word “Buy” is highlighted. Field132 comprises three mouse-clickable areas, providing a quick means forup or down adjustment of price and direct entry of price, with initialvalue taken from the current market. Field 133 is a mouse-clickablebutton allowing for a partial execution of a trade. This allows agent 2to buy either as much of the size as possible, or nothing if he cannotbuy the entire size. Field 134 comprises three mouse-clickable areasproviding a quick means for up or down adjustment of size and directentry of size, with initial value configurable on a per user 2 basis.Field 135 is a mouse-clickable area allowing agent 2 to execute the buy,and has an optional confirmation dialog box associated therewith.

FIG. 21 illustrates sell (immediate execution offer) dialog box 31.Field 141 is a set of icons, typically colored to provide visual contextto reduce errors. Note that the word “Sell” is highlighted. Field 142comprises three mouse-clickable areas providing a quick means for agent2 to achieve up or down adjustment of price and direct entry of price,with initial value taken from the current market. Field 143 is amouse-clickable area allowing partial execution. This allows agent 2 thechoice of the sell being either to fill as much of the size as possible,or to not sell if he 2 cannot sell the entire size. Field 144 comprisesthree mouse-clickable areas providing for a quick means for up or downadjustment of size and direct entry of size, with initial valueconfigurable on a per user 2 basis. Field 145 is a mouse-clickable areaallowing the sell to be executed, and has an optional confirmationdialog box associated therewith.

FIG. 22 is a flow diagram illustrating the method steps by whichcomputer 1 computes a custom limit order book 24,25 for a single agent 2for a single traded instrument. Even intermediate agents 5 get a customlimit order book 24, 25. For the left hand side of FIG. 22, source S isthat node 2 for which this custom limit order book is being prepared;and sink T is that node 2 that has posted the bid. For the right handside of FIG. 22, source S is that node 2 that posted the offer; and sinkT is that node 2 for which this custom limit order book is beingprepared. “Source” and “sink” are standard network terminologies; see,e.g., the Ahuja reference previously cited. These concepts are usedinternally by computer 1, but are not disclosed to all agents 2 forreasons of preserving the desired anonymity. For example, the actualposter 2 of the offer does not appear on the screen of the counterparty2.

The method starts at step 151. In step 152, computer 1 asks whetherthere have been any trades made since the last multi-hop creditcomputation. This is meant to avoid unnecessary computation. If theanswer to the question is “yes”, then step 153 is executed. At step 153,multi-hop credit limits are computed, as illustrated in FIG. 23. If theanswer to the question raised in step 152 is “no”, step 154 is executed.At step 154, the bid side of the book is cleared, i.e., variable Bbecomes the null set; the offer side of the book is cleared, i.e.,variable A becomes the null set; and the credit used (U as a function ofS and T) is cleared. In this context, “used” applies only for thisparticular custom limit order book 24,25 for this particular agent 2.Step 155 is then executed, where it is asked whether enough bids havebeen found. “Enough” is a pre-established limit, e.g., five, andcorresponds to N as discussed above in conjunction with custom limitorder book detail window 25. N may be infinity, in which case the methodalways proceeds from step 155 to step 156. If enough bids have beenfound, the method proceeds to step 161. If enough bids have not beenfound, the method proceeds to step 156, where it is asked whether thereare more unprocessed bids, i.e., if the number of bids that have beenprocessed is less that the pre-established limit. If the answer is “no”,step 161 is executed; otherwise, the method proceeds to step 157, wherethe highest priced oldest unprocessed bid is fetched. The hierarchy isaccording to highest bid. If there is a tie as to two or more highestbids, then the bids are ordered by time. It is forced that there not bea time-tie at this point; time collisions have already been resolved bylocking using sequence numbers.

Step 158 is then executed. X is defined as the flow limit (tradinglimit) between S and T minus the credit U between S and T that hasalready been used up. Y is then set to be the minimum of X and the bidsize. In other words, Y is what we have to work with. Step 159 isexecuted, where it is asked whether Y is greater than 0. If not, themethod cycles back to step 155. If “yes”, step 160 is executed. In step160, the set of bids B is augmented by the current bid we are workingwith from step 157. Also in step 160, the credit used U is augmented byY.

At step 161, it is asked whether enough offers have been found. Again,“enough” is a pre-established limit e.g., five, corresponding to N asbefore. If the answer to this is “yes”, the method stops at step 167. Ifthe answer is “no”, step 162 is executed. At step 162, it is askedwhether there are more unprocessed offers. If not, the method ends atstep 167. If “yes”, step 163 is executed, where the lowest priced,oldest unprocessed offer is fetched. Then, step 164—is executed, where Xis set to be the trading limit between S and T minus the unused creditU. Y is then set to be the minimum of X and the offer size. Step 165 isthen executed. At step 165, it is asked whether Y is greater than 0. Ifnot, control is passed back to step 161. If “yes”, step 166 is executed,where the current offer price being worked on from box 163 is added tothe set of offers A; and the credit used U is augmented by Y. Controlthen passes back to step 161.

FIG. 23 illustrates how computer 1 calculates multi-hop trading limitsfor each pair of agents 2 for a single traded instrument L:Q, i.e., howcomputer 1 performs step 153 on. FIG. 22. This is akin to compiling atable like Table 1 shown above. This procedure starts at step 171. Atstep 172, a directed graph is computed for the traded instrument L:Q, inwhich the arrow corresponds to the direction of flow of the lotinstrument L. Individual trading limits are introduced at this point.Step 172 is the subject of FIG. 24. At step 173, an arbitrary networknode 2 is selected to be the first node worked upon by the process andis given the designation source S. At step 174, sink T is also set to besaid first network node 2. At step 175, it is asked whether S is equalto T. If so (which, of course, is the case initially), the proceduremoves to step 176, where the maximum flow limit between S and T is setto be infinity. This is simply another way of saying that an agent 2 isallowed to have an infinite flow with himself 2. Then, at step 182, itis asked whether T is the last network node that needs to be processed.If “yes”, control is passed to step 184; if “no”, control is passed tostep 183, where T is advanced to the next network node; and control ispassed back to step 175. “Next” can be anything, because the order ofprocessing is of no import.

If S is found not to be equal to T at step 175, control is passed tostep 177, which disables edges 3 where the edge origin 2 is not a creditbridge 5 and the edge origin 2 is not equal to S. An edge 3 may bedisabled internally by adjusting its maximum capacity to 0 or byremoving it from the set of edges 3 that comprise the graph. The “edgeorigin” is that node 2 from which the lot instrument L flows. Steps 177and 178 eliminate agents 2 who have not agreed in advance to beintermediaries, i.e., “credit bridges”. An intermediary (credit bridge)is an agent 5 that allows two other agents 2 to do back-to-back tradesthrough the intermediary agent 5. Step 178 disables edges 3 where theedge destination 2 is not a credit bridge 5 and the edge destination 2is not equal to T. An “edge destination” is a node 2 that receives theflow of the lot instrument L.

At step 179, the maximal flow from S to T is computed using a maximalflow algorithm such as one of the algorithms disclosed in Chapter 7 ofthe Ahuja reference previously cited. At step 180, the multi-hop creditlimit between S and T, LIM(S,T), is set to be equal to the maximum flowobtained from step 179. At step 181, the edges 3 that were disabled insteps 177 and 178 are re-enabled. Step 184 asks whether S is the lastnetwork node to be processed. If “yes”, the procedure concludes at step186. If “no”, the process moves to step 185, where S is advanced to thenext network node. Again, “next” is arbitrary and simply refers to anyother unprocessed node 2. After step 185, the method re-executes steps174.

FIG. 24 illustrates how computer 1 calculates a directed graph for thetraded instrument L:Q, i.e., how computer 1 performs step 172 of FIG.23. This is akin to producing a graph such as that shown in FIG. 5, witharrows as in FIG. 10. The operation commences at step 191. At step 192,the edge 3 set G is nulled out. At step 193, computer 1 searches itsrecords for any account A that it has not yet processed. The order ofselection of unprocessed accounts is irrelevant. Account A is anypre-existing trading (credit) relationship between two neighboringagents 2 that has been previously conveyed to the operator of computer 1in writing in conjunction with these agents 2 subscribing to the tradingsystem operated by the operator of computer 1.

Step 194 asks whether there is any such unprocessed account A. If “not”,this process stops at step 198. If there is an unprocessed account A,the process executes step 195, where the minimum and maximum excursionsfor account A are calculated. Step 195 is the subject of FIG. 25. Theseminimum and maximum excursions are defined in terms of the lotinstrument L, and are calculated from one or more of eight possible waysof specifying input credit limits. The maximum and minimum excursionsare excursions from current position. The input credit limits arespecified as part of each account A. In step 196, the set of edges G isaugmented with an edge 3 from A's lender 2 to A's borrower 2, with thecapacity of the edge 3 being set to the maximum excursion. L is the lotinstrument and Q is the quoted instrument. In step 197, the set of edgesG is augmented with an edge 3 from A's borrower 2 to A's lender 2, withthe capacity of the edge 3 being set to the negative of the minimumexcursion. The process then re-executes step 193.

FIG. 25 shows how computer 1 calculates the minimum and maximumexcursions for a single account A and a single traded instrument L:Q,i.e., how computer 1 executes step 195 of FIG. 25. This computationtakes into account up to eight different ways a guaranteeing agent 5 mayspecify input credit limits in an account A. The operation commences atstep 201. At step 202, the maximum excursion is set to be infinity andthe minimum excursion is set to be minus infinity, because at this pointthere are no trading limits.

Step 203 asks whether position limits have been defined for the lotinstrument. If yes, step 204 is executed. At step 204, the lotinstrument position limits' effects on the maximum and minimumexcursions are calculated. This is the subject of FIG. 26. At step 205,it is asked whether volume limits have been specified for the lotinstrument. If so, step 206 is executed. At step 206, the lot limitvolume limits' effects on the maximum and minimum excursions arecalculated. This is the subject of FIG. 28. At step 207, it is askedwhether position limits have been specified for the quoted instrument.If so, step 208 is executed. At step 208, the quoted instrument positionlimits' effects on the maximum and minimum excursions are calculated.This is the subject of FIG. 27. At step 209, it is asked whether volumelimits have been specified for the quoted instrument. If so, step 210 isexecuted. At step 210, the quoted instrument volume limits' effects onthe maximum and minimum excursions are calculated. This is the subjectof FIG. 29. At step 211, it is asked whether notional position limitshave been 6 specified. If so, step 212 is executed. At step 212, thenotional position limits' effects on the maximum and minimum excursionsare calculated. This is the subject of FIG. 30. At step 213, it is askedwhether notional volume limits have been specified. If so, step 214 isexecuted. At step 214, the notional volume limits' effects on themaximum and minimum excursions are calculated. This is the subject ofFIG. 31. At step 215, it is asked whether position limits have beenspecified for the traded instrument L:Q. If so, step 216 is executed. Atstep 216, the traded instrument L:Q position limits' effects on themaximum and minimum excursions are calculated. This is the subject ofFIG. 32. At step 217, it is asked whether volume limits have beenspecified for the traded instrument L:Q. If so, step 218 is executed. Atstep 218, the traded instrument L:Q volume limits' effects on themaximum and minimum excursions are calculated. This is the subject ofFIG. 33.

Then step 219 is executed, where the maximum excursion is set to beequal to the maximum of 0 and the current value of the maximumexcursion. This is done because we don't want to have a negative maximumexcursion. At step 220, the minimum excursion is set to be the minimumof 0 and the current value of the minimum excursion. This is donebecause we do not want to have a positive minimum excursion. Then, themethod ends at step 221.

It is important to note that the order of taking into account theeffects of the eight types of specified input credit limits isirrelevant, because each of the eight can only constrict an excursionmore, not expand it. Therefore, the ultimate limit is the mostrestrictive one. All of the eight trading limits described herein arerecalculated after each trade affecting that limit.

As used herein, a “trading limit” is something calculated by computer 1,and a “credit limit” is something specified by a guaranteeing agent 5.

Conventional mathematical shortcuts can be used to speed thecalculations without necessarily having to repeat all the method stepsin all but the first time a particular method is executed. All of thesteps of FIG. 25 get executed the first time a method shown in. FIGS. 26through 33 is executed.

FIG. 26 shows how computer 1 calculates the position limit for the lotinstrument, i.e., how computer 1 performs step 204 of FIG. 25. Aposition limit is a net limit in the instrument being traded. The methodstarts at step 231. At step 232, computer 1 retrieves the specifiedinput maximum position credit limit for instrument L, PMAX(L), and thespecified input minimum position credit limit for instrument L, PMIN(L).Normally, PMIN(L) is the negative of PMAX(L), but that doesn'tnecessarily have to be true. Also in step 232, the net position, POS, iszeroed out.

In step 233, computer 1 looks for another unsettled flow of instrument Lin account A. “Another” is arbitrary. At step 234, it is asked whethersuch another unsettled flow exists. If not, control passes to step 238.If the answer is “yes”, step 235 is executed, wherein it is askedwhether the flow is to account A's borrower 2. A “flow” is a transfer ofa single instrument along a single edge 3. This is the same as askingwhether the flow is to other than a guaranteeing agent 5, because thelender is the guaranteeing agent 5. If the answer is yes, step 236 isexecuted, during which POS is augmented by the flow amount, and controlpasses back to step 233. This inner loop 233-236 constitutes calculationof the net position, and is performed for each Q matching that L.

If the answer to the question posed in step 235 is “no”, step 237 isexecuted, wherein POS is decremented by the flow amount, and control ispassed back to step 233. At step 238, X is set to be equal to PMAX(L)minus POS, and Y is set equal to PMIN(L) minus POS. X is the maximumexcursion from this flowchart and Y is the minimum excursion from thisflowchart. At step 239, the maximum excursion for the traded instrumentL:Q is set to be equal to the minimum of the current value of thismaximum excursion and X; and the minimum excursion for the tradedinstrument L:Q is set to be equal to the maximum of the minimum of thecurrent value of the minimum excursion and Y. In other words, the set ofmaximum and minimum excursions is updated based upon the results of thisflowchart. The method ends at step 240.

FIG. 27 illustrates how computer 1 calculates the position limit for thequoted instrument, i.e., how computer 1 performs step 208 of FIG. 25.Other than the fact that Q is substituted for L, the method described inFIG. 27 is identical to that described in., with one exception: in step259 (analogous to step 239 of FIG. 26), we convert from the quotedinstrument to the lot instrument, because we want everything expressedin terms of the lot instrument once we get to the higher level flowchart(FIG. 25). Therefore, in step 259, X and Y are each multiplied by a“fixed rate Q:L” (exchange rate). This exchange rate is fixed for acertain period of time, e.g., one hour or one day, and may be differentfor different accounts at the same moment in time.

FIG. 28 illustrates how computer 1 calculates the volume limit for thelot instrument, i.e., how computer 1 performs step 206 of FIG. 25. Avolume limit is a gross limit in the instrument being traded. The methodstarts at step 271. In step 272, computer 1 retrieves the specifiedinput maximum permissible volume credit limit for instrument L, VMAX(L);and clears a variable field VOL representing total volume. In step 273,computer 1 looks for another unsettled flow of instrument L in accountA. “Another” is arbitrary. At step 274, it is asked whether such anotherunsettled flow has been found. If “yes”, at step 275, VOL is augmentedwith the flow amount. It doesn't matter whether the flow is in or out toa particular node 2; it counts towards the volume limit the same in eachcase.

Control is then passed back to step 273. If the answer posed in step 274is “no”, step 276 is executed, wherein X is set equal to VMAX(L) minusVOL, and Y is set equal to minus X, because of the definition of“volume”. Again, X and Y are the partial limits as calculated by thisparticular flowchart. Then in step 277, the maximum excursion is setequal to the minimum of the previous value of the maximum excursion andX; in the minimum excursion is set equal to the maximum of the previousvalue of the minimum-excursion and minus X. In other words, the overallexcursions are updated based upon the results of this flowchart. Themethod then ends at step 278.

FIG. 29 illustrates how computer 1 calculates the volume limit for thequoted instrument, i.e., how computer 1 performs step 210 of FIG. 25.Other than the fact that Q is substituted for L, the method steps ofFIG. 29 are identical to those of FIG. 28, with one exception: in step287 (analogous to step 277 of FIG. 28), X and minus X are eachmultiplied by “fixed rate Q:L” for the same reason that this factor wasintroduced in FIG. 27.

FIG. 30 illustrates how computer 1 calculates the notional positionlimit, i.e., how computer 1 performs step 212 of FIG. 25. The notionalposition limit protects the guaranteeing agent 5 against rate excursionsaggregated over the positions in all of the instruments. “Notional”means we are changing the notation; the concept implies that there is aconversion from one instrument to another, and that the conversion isdone at a certain rate that has been agreed upon. The rate is setperiodically, e.g., daily. This conversion from one instrument toanother is used to convert all values into a single currency for thepurpose of aggregation into a single value.

The method commences at step 291. At step 292, computer 1 retrieves themaximum notional position credit limit PMAXN, where N is the notionalinstrument, i.e, the instrument in which the limit is presented. In step292, the notional position, NPOS, is also zeroed out. In step 293,computer 1 looks for another instrument C with flows in account A. C isan index designating the instrument for which we are executing the loop293-301. The order of selecting the instruments is immaterial. Step 294asks whether such another instrument C has been found. If not, controlpasses to step 302. If the answer is yes, step 295 is executed, whereinthe instrument position, POS(C), is zeroed out. At step 296, computer 1looks for another unsettled flow of instrument C in account A.

Step 297 asks whether such another unsettled flow has been found. Ifnot, control passes to step 301. If the answer is “yes”, step 298 isexecuted, where it is asked whether the flow is to account A′s borrower2. If “yes”, POS(C) is augmented with the flow amount at step 299. Ifnot, POS(C) is decremented by the flow amount at step 300. In eithercase, control is returned to step 296. Note that the inner loop 296-300is analogous to the loops in. FIGS. 26 and 27. At step 301, NPOS isaugmented by the absolute value of POS(C) multiplied by “fixed rateC:N”, which converts to the notional instrument. The absolute value ofPOS(C) is used, because a negative position presents the same risk tothe guaranteeing agent 5 as a positive position.

Before we describe step 302, let us define A and B, as those terms areused in step 302. Note that “A” in step 302 is not the same as “accountA”. A is the position of L, POS(L), multiplied by “fixed rate L:N”,which converts this position to the notional instrument. B is theposition of Q, POS(Q), multiplied by “fixed rate Q:N”, which convertsthis to the notional instrument. The positions of L and Q are ascalculated in the above loop 294-301; if L and Q were not subject tothese notional limits, then A and B would be 0.

In step 302, computer 1 finds the minimum and maximum roots of F(X),where F(X) is defined in step 302. The term “root” is that ofconventional mathematical literature, i.e., a value of X that makes F(X)equal to 0. Let us define E to be equal to the absolute value of A plusB, plus NPOS, minus the absolute value of A, minus the absolute value ofB, minus PMAXN. If E is greater than 0, then there are no roots. In thateventuality, we set the maximum excursion of the traded instrument L:Q,MAXEXC(L,Q), and the minimum excursion of the traded instrument L:Q,MINEXC(L,Q), to be equal to 0. If E is less than or equal to 0, themaximum root is the maximum of minus A and B, minus E/2; and the minimumroot is the minimum of minus A and B, plus E/2. Now we are ready to goto step 303.

At step 303, the maximum excursion of the traded instrument L:Q.is setequal to the minimum of the previous version of the maximum excursion ofthe traded instrument L:Q and the maximum root multiplied by “fixed rateN:L”, which converts it to the lot instrument. Similarly, the minimumexcursion of the traded instrument L:Q is set equal to the maximum ofthe previous version of the minimum excursion of the traded instrumentL:Q and the minimum root multiplied by the same conversion factor,“fixed rate N:L”. The method terminates at step 304.

FIG. 31 illustrates how computer 1 calculates the notional volume limit,i.e., how computer 1 performs step 214 of FIG. 25. The method starts atstep 311. At step 312, computer 1 retrieves the specified input maximumnotional volume credit limit, VMAXN. This is a limit across allinstruments in the account. At step 312, the total volume, VOL, is alsozeroed out. At step 313, computer 1 looks for another unsettled flow ofany instrument C in account A. Again, “another” is arbitrary. At step314, it is asked whether such another unsettled flow has been found. If“yes”, step 315 is executed; if “no”, step 316 is executed.

Let R be the conversion factor “fixed rate C:N”, where C is theinstrument that we are looping through currently. Then, step 315 setsVOL to be the previous VOL plus the quantity R times the flow amount.Step 313 is then entered into. At step 316, X is set equal to VMAXNminus VOL. Again, X is the limit from just this flowchart. At step 317,the maximum excursion of the traded instrument L:Q is set equal to theminimum of the previous value of the maximum excursion of the tradedinstrument L:Q and X times “fixed rate N:L”, i.e., we are convertingfrom the notional instrument to the lot instrument. Similarly, theminimum excursion of the traded instrument L:Q is set equal to themaximum of the previous version of the minimum excursion of the tradedinstrument L:Q and minus X times the same conversion factor. The methodends at step 318.

FIG. 32 illustrates how computer 1 calculates an instrument positionlimit, i.e., how computer 1 performs step 216 of FIG. 25. This type ofposition limit differs from the previous position limit flowcharts(FIGS. 26 and 27) in that the guaranteeing agent 5 is specifying thatanother agent 2 cannot trade any more than j L for Q, rather than theother agent 2 can trade no more than jL or jQ. This type of input creditlimit is not as common as the ones described in FIGS. 26 and 27. If noagent 2 has specified this type of input credit limit, this flowchart 33does not have to be executed. (Similarly, if no agent 2 has specified acertain other type of input credit limit, the flowchart corresponding tothat credit limit does not have to be executed.) Both the L and the Qhave to match in order for this flowchart 33 to be executed, unlike theflowcharts described in Figures 26 and 27.

The method starts at step 321. At step 322, computer 1 looks up thespecified maximum position credit limit for the traded instrument L:Q,PMAX(L,Q), and the specified minimum position credit limit for thetraded instrument L:Q, PMIN(L,Q). In step 322, the total position, POS,is also zeroed out. In step 323, computer 1 looks for another unsettledflow pair with lot instrument L, quoted instrument Q, and account A.Again, “another” is arbitrary. At step 324, it is asked whether suchanother unsettled flow pair has been found. If “no”, control passes tostep 328. If “yes”, control passes to step 325, where it is askedwhether the lot instrument flows to account A′s borrower 2. In otherwords, the calculation is done in terms of the lot instrument to beginwith, so that we do not have to convert to the lot instrument at the endof the calculation. If the answer to this question is “yes”, step 326 isexecuted, where POS is incremented with the lot instrument flow amount.Control then passes to step 323. If the answer to the question posed instep 325 is “no”, step 327 is executed, where POS is decremented by thelot instrument flow amount. Again, control then passes to step 323. Atstep 328, X is set equal to PMAX(L,Q) minus POS, and Y is set equal toPMIN(L,Q) minus POS. At step 329, the maximum excursion of the tradedinstrument L:Q is set equal to the minimum of the previous version ofthe maximum excursion of the traded instrument L:Q and X; and theminimum excursion of the traded instrument L:Q is set equal to themaximum of the previous value of the minimum excursion of the tradedinstrument L:Q and Y. The method ends at step 330.

FIG. 33 illustrates how computer 1 calculates a traded instrument volumelimit, i.e., how computer 1 performs step 218 of FIG. 25. This method issimilar to the method described in FIGS. 28 and 29, except the limit ison the volume traded of L for Q, not a limit on the volume of L or Qindividually. The method starts at step 341. In step 342, computer 1retrieves the specified maximum volume input credit limit for the tradedinstrument L:Q, VMAX(L,Q). Also in step 342, the total volume VOL iszeroed out. In step 343, computer 1 looks for another unsettled flowpair with lot instrument L, quoted instrument Q, and account A. Again,“another” is arbitrary.

At step 344, it is asked whether such another unsettled flow pair hasbeen found. If “no”, control passes to step 346. If “yes”, controlpasses to step 345, where VOL is augmented by the lot instrument flowamount. The calculation is done in the lot instrument, so that we do nothave to convert to the lot instrument at the end; and it makes thecalculation more stable, because we don't have to worry aboutfluctuating rates. Control is then passed to step 343. At step 346, X isset equal to VMAX(L,Q) minus VOL. At step 347, the maximum excursion ofthe traded instrument L:Q is set equal to the minimum of the previousversion of the maximum excursion of the traded instrument L:Q and X.Similarly, the minimum excursion of the traded instrument L:Q is setequal to the maximum of the previous value of the minimum excursion ofthe traded instrument L:Q and minus X. The method stops at step 348.

FIG. 34 illustrates the reporting by computer I of single-hop trades.This method is executed after a match has been made, i.e., after a bidor offer has been taken by a counterparty 2. The method of FIG. 34 canbe done either in real time or in batch mode (i.e., combined with thereporting of other trades). In FIG. 34, L is the lot instrument, Q isthe quoted instrument, B is the agent 2 who is buying L, S is the agent2 who is selling L, P is the trade price, F_(L) is the amount of Lbought and sold, F_(Q) is P times F_(L), i.e., the counter-amount interms of instrument Q, and T is the settlement date and time.

The method starts at step 351. At step 352, central computer 1 issues anelectronic deal ticket 353 to an auditor. The auditor is a trusted thirdparty, e.g., an accounting firm. Ticket 353 has a plaintext portion andan encrypted portion. The plaintext gives the ticket ID, and the timeand date that the ticket 353 is generated. The encrypted portion statesthat agent B bought F_(L) for F_(Q) from agent S for settlement at T.Deal ticket 353 is digitally signed by central computer 1 forauthentication purposes, and encrypted by central computer 1 in a waythat the auditor can decrypt the message but central computer 1 cannotdecrypt the message. This is done for reasons of privacy, and can beaccomplished by computer 1 encrypting the message using the public keyof the auditor in a scheme using public key cryptography.

At step 354, computer 1 issues an “in” flow ticket 355 to buyer B and tothe auditor. Flow ticket 355 contains a plaintext portion and anencrypted portion. The plaintext gives the ticket ID, the time and datethe ticket 355 is generated, and the name of agent B. The encryptedportion states that you, agent B, bought F_(L) for F_(Q) fromcounterparty S for settlement at T. Ticket 355 is digitally signed bycomputer 1 and encrypted in such a way that it may be decrypted only byagent B and by the auditor, not by computer 1. Two different encryptionsare done, one for agent B and one for the auditor.

At step 356, computer 1 issues an “out” flow ticket 357 to seller S andto the auditor. Out flow ticket 357 contains a plaintext portion and anencrypted portion. The plaintext gives the ticket ID, the time and dateof issuance, and the 2 name of agent S. The encrypted portion statesthat you, agent S, sold F_(L) for F_(Q) to counterparty B for settlementat T. Ticket 357 is digitally signed by computer 1 and encrypted only toagent S and to the auditor, not to computer 1. Two different encryptionsare used, one to agent S and one to the auditor.

Tickets 353, 355, and 357 can include the digital identity of theindividual within the agent 2 whose smartcard was plugged into theagent's computer when the transaction was made. The method ends at step358.

FIG. 35 illustrates how computer 1 electronically reports a multi-hopdeal. This method is performed after the match has been made and can bedone either in real time or in batch mode. Agents B and S do not knoweach other, as they know the identities of just their nearestneighboring agents 2. The notation for this flowchart is identical tothat for FIG. 34, except that B is the ultimate buyer of L and S is theultimate seller of L.

The method begins at step 361. At step 362, computer 1 issues dealticket 363 to the auditor. Ticket 363 contains a plaintext portion andan encrypted portion. Ticket 363 is digitally signed by computer 1 andencrypted only to the auditor. The encrypted portion states that agent Bbought F_(L) for F_(Q) from agent S for settlement at T, and that thedeal was fulfilled by multiple direct trades in D, the directed dealfulfillment graph, i.e., the type of graph that is illustrated in FIG.10. In other words, the auditor knows every agent 2 in the chain.

At step 364, computer 1 looks for the next unprocessed agent V in graphD. Again, “next” is arbitrary. At step 365, it is asked whether such anunprocessed agent V has been found. If not, the method stops at step366. If the answer is “yes”, node loop 370 is entered into. For agent V,this node loop examines the set E_(V) of directed edges 3 in D whichhave agent V as either a source or destination. Each edge 3 has anamount F that is greater than zero and less than or equal to F_(L). Notethat this verification process is for illustration only; there would notbe a match if these constraints were not satisfied. At step 367, it isasked whether agent V is the ultimate buyer B of the deal. If “no”,control is passed to step 368. If “yes”, control is passed to step 371.

At step 368, it is asked whether agent V is the ultimate seller S of thedeal. If “no”, control is passed to step 369. If “yes”, control ispassed to step 372. At step 369, computer 1 concludes that agent V is anincidental participant in the deal, i.e., a middleman 5. Control is thenpassed to step 373, which verifies that the sum of the edge 3 amountshaving agent V as a source equals the sum of the edge amounts 3 havingagent V as a destination. Sums are used because that agent 5 could haveseveral edges 3 in and out. Therefore, it is known that agent V has nonet market position change.

Control is then passed to step 376. At step 372, it is verified thatagent V is the source node 2 (as opposed to the destination node) of alledges 3 in E_(V). In step 375, it is verified that edge 3 amounts inE_(V) sum to F_(L), the net amount sold. Control is then passed to step376.

In step 371, it is verified that agent V is the destination node 2 (asopposed to the source node) of all edges 3 in E_(V). At step 374, it isverified that edge 3 amounts in E_(V)sum to F_(L), the net amountbought. Control is then passed to step 376, where computer 1 looks forthe next unprocessed edge in E_(V) corresponding to account A. Steps376-382 constitute an edge loop. Account A is any account held by orextended to counterparty X. Counterparty X is the counterparty 2 toagent V for that edge 3. The edge 3 has to have some amount F, where Fis greater than 0 and less than or equal to F_(L), and an implicitcounter-amount F times P; otherwise, there would be no way to clear thetrade. Again, “next” in step 376 is arbitrary. Control is then passed tostep 382.

At step 382, it is asked whether such a next unprocessed edge 3 has beenfound. If not, control is passed to step 364. If “yes”, control ispassed to step 381, where it is asked whether agent V is the destinationnode 2 for this edge 3. If “yes”, then step 380 is executed. If “no”,then by definition, agent V is the source node 2 for this edge 3, andstep 379 is executed. Control is passed to step 376 after either of step379 or 380 is executed.

At step 380, computer 1 reports an “in” flow ticket 377 to agent V,because the lot currency is flowing in to agent V. Flow ticket 377contains a plaintext portion and an encrypted portion. The plaintextincludes the ticket ID, the time and date of issuance, and the name ofagent V. The encrypted portion states that you, agent V, bought F of Lfor F times P of Q from counterparty X for settlement at T. In thiscase, counterparty X is just the immediate neighbor 2 to agent V,preserving anonymity. Ticket 377 is digitally signed by computer 1 andencrypted by computer 1 only to agent V and to the auditor, not tocomputer 1. Two encryptions are performed, one to agent V and one to theauditor.

At step 379, computer 1 generates an “out” flow ticket 378 to agent V.Ticket 378 contains a plaintext portion and an encrypted portion. Theplaintext includes the ticket ID, the time and date of issuance, and thename of agent V. The encrypted portion states that you, agent V, sold Fof L for F times P of Q to counterparty X for settlement at T. Again,counterparty X is just the immediate neighbor 2 to agent V, preservinganonymity. Flow ticket 378 is digitally signed by computer 1 andencrypted by computer 1 only to agent V and to the auditor, not tocomputer 1. Two encryptions are performed, one to agent V and one to theauditor.

Tickets 363, 377, and 378 can include the digital identity of theindividual within agent 2 whose smartcard was plugged into the agent'sterminal when the transaction was made.

The above description is included to illustrate the operation of thepreferred embodiments and is not meant to limit the scope of theinvention. The scope of the invention is to be limited only by thefollowing claims. From the above discussion, many variations will beapparent to one skilled in the art that would yet be encompassed by thespirit and scope of the present invention.

What is claimed is:
 1. A method, comprising: executing programinstructions by a computer system to generate dealable prices at which afirst trading entity is willing to buy and/or sell a foreign currencypair; and communicating the generated prices from the computer system toa foreign exchange (FX) trading system accessible by a plurality oftrading entities, wherein the communicating causes the FX trading systemto post the communicated prices.
 2. The method of claim 1, wherein thedealable prices are generated automatically by the computer system, andwherein the generated prices are communicated to an applicationprogramming interface of the FX trading system.
 3. The method of claim1, wherein the generated dealable prices include bid and ask prices forthe foreign currency pair, and wherein the generated prices are notcommunicated to the FX trading system via a graphical user interface. 4.The method of claim 3, wherein the generated prices are communicated ina machine-to-machine communication protocol to an applicationprogramming interface of the FX trading system.
 5. The method of claim3, further comprising: executing program instructions by the computersystem to generate additional dealable prices for the foreign currencypair; and communicating the additional generated prices to the FXtrading system via a graphical user interface of the FX trading system.6. The method of claim 1, further comprising: executing programinstructions by the computer system to provide information from thefirst trading entity to the FX trading system, wherein the providedinformation is an indication to hit one or more dealable prices for theforeign currency pair posted to the FX trading system by another tradingentity.
 7. The method of claim 6, wherein the first trading entity is anon-credit-extending within the FX trading system.
 8. The method ofclaim 1, wherein the generated prices are for a spot trade of theforeign currency pair.
 9. A method, comprising: executing programinstructions by a computer system to determine to hit dealable pricesfor a foreign currency pair posted to a foreign exchange (FX) tradingsystem; and executing program instructions by the computer system toprovide information from a first trading entity to the FX tradingsystem, wherein the provided information is an indication to hit one ormore of the posted dealable prices for the foreign currency pair. 10.The method of claim 9, wherein the determination to hit the dealableprices is performed automatically by the computer system, and whereinthe indication is provided to an application programming interface ofthe FX trading system.
 11. The method of claim 10, wherein the FXtrading system also includes a graphical user interface.
 12. The methodof claim 9, wherein the indication is provided to the FX trading systemwithout the use of a graphical user interface.
 13. The method of claim9, wherein the indication is provided via a machine-to-machinecommunication protocol to an application programming interface of the FXtrading system.
 14. The method of claim 9, wherein the posted dealableprices are for spot trades of the foreign currency pair.
 15. The methodof claim 9, wherein the indication is to hit one or more dealable bidprices.
 16. The method of claim 9, wherein the FX trading system isconfigured to anonymously match spot trades of the foreign currencypair.
 17. A method, comprising: receiving, at a computer system, aplurality of current prices for a foreign exchange instrument; and thecomputer system executing program instructions to automatically generatea pricing forecast for the foreign exchange instrument.
 18. The methodof claim 17, further comprising the computer system using the forecastto select and hit dealable prices for the foreign exchange instrument.19. The method of claim 17, wherein the foreign exchange instrument is acurrency pair, and wherein the plurality of current prices are receivedvia a machine-to-machine protocol.
 20. The method of claim 17, whereinthe plurality of current prices are received in response to a requestfor prices made to an application programming interface of a foreignexchange trading system.